Mini Project

주제 :당뇨병 데이터 시각화

당뇨병이란?


췌장의 랑게르한스섬에서 분비되는 인슐린이 부족할 때 발생한다. 소변에서 단맛이 난다는 이유로 당뇨라는 명칭이 만들어졌다.

당뇨병의 원인은?


몸에서 쓰이는 포도당을 정상적으로 이용하지 못할 때 생긴다. 췌장이 망가져 인슐린이 제대로 나오지 못하거나 나와도 그 효과가 작아 피속의 당이 제대로 사용되지 못하여 장애가 발생한다.

NaN 값은 존재하지 않는걸 확인할 수 있다.

최소값이 0인 데이터들이 많이 보인다.

그런데 Glucose, BloodPressure, SkinThickness, Insulin, BMI의 경우는 0일 수가 없다.

그래서 이 컬럼들의 값이 0인경우를 결측치로 생각해야한다.

결측치로 처리해야할 컬럼(값이 0인 경우)

Glucose, BloodPressure, SkinThickness, Insulin, BMI

0인 값을 결측치로 처리하기에 피부두께와 인슐린은 결측치로 변화되는 값이 너무 많다

피부두께와 인슐린의 NaN값을 모두 지운다면 데이터의 수가 너무 줄어들것 같다.

그런데 피부두께와 인슐린을 제외하고는 NaN값이 존재하는 행을 지워도 데이터의 수가 크게 줄어들진 않으므로

나머지 컬럼의 NaN값을 갖는 행은 제거하고 피부두께와 인슐린의 결측치는 중위값으로 대체하자

인슐린과 피부두께의 결측치는 당뇨병 여부의 평균으로 넣어주자

BMI지수와 피부두께, 인슐린분비와 포도당, 나이와 임신횟수의 상관관계가 높게 나타난다.

당뇨병 여부(Outcome)컬럼과 다른 컬럼과의 값을 비교, 시각화해보자

당뇨병 환자의 연령별 분포

당뇨병 환자는 20대 ~ 40대 중반이 가장 많은걸로 보인다

그런데 50대, 60대에서는 왜 당뇨병환자의 수가 적게 나타날까?

50대,60대의 수가 적어서 당뇨병 환자의 수가 적은 것이 아닐까?

우선 전체 인원수 중 50대의 60대의 수를 살펴보자

살펴보면 전체 인원수 중 50,60대의 수는 10%로 밖에 안되는걸 알 수있다.

그렇다면 나이대별 당뇨병 환자의 수를 비교해보자

표본이 적은 60대를 제외하고 나이대가 높아지면 당뇨병에 걸릴 확률이 높다는걸 알 수 있다.

임신횟수와 가족이력은 당뇨병과 약한 양의 상관관계를 갖는듯하다.

상관분석

포도당 수치가 높고 BMI지수가 높으면 당뇨병에 걸릴 확률이 높다고 생각된다.

그러고 위의 히트맵으로 시각화했던 상관관계에서 포도당은 인슐린과, BMI는 피부두께와 상관관계가 높다는걸 알 수 있다.

당뇨병 예상

표준화 작업을 한 후

당뇨병인 사람들의 0과의 유클리디안 거리를 구해서 합친 후 사람수만큼 나눠주고

마찬가지로 정상인 사람들의 유클리디안 거리를 구해서 합친 후정상인수만큼 나눠준다.

테스트 데이터와 0과의 유클리디안 거리를 구해서 나온 값이 어디에 가까운지 판단하여 당뇨병인 사람들의 유클리디안

거리와 가장 가까운 10명을 구해보자

당뇨병 환자의 거리 평균은 2.5492850340869255

정상인의 거리 평균은 2.6791406564496536 이다.

이제 테스트 데이터를 표준화시키고 거리를 구해보자

sum_df_1과 가장 거리가 까가운 순으로 정렬해보자